package com.ttx.springmvc.example.config;

import com.alibaba.fastjson.serializer.SerializerFeature;
import com.alibaba.fastjson.support.config.FastJsonConfig;
import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

import java.util.List;

/**
 * fixme 使用java配置不能生效 
 * @author TimFruit
 * @date 19-7-28 下午5:37
 */
//@Configuration
//@EnableWebMvc
public class WebJsonConfig extends WebMvcConfigurerAdapter {

    public static final Logger logger=LoggerFactory.getLogger(WebJsonConfig.class);

    @Override
    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
        logger.info("===========================");
        logger.info("===========================");
        logger.info("===========================");
        logger.info("===========================");
        logger.info("===========================");
        logger.info("===========================");
        logger.info("===========================");
        logger.info("===========================");
        logger.info("===========================");
        logger.info("===========================");
        logger.info("===========================");
        logger.debug("===========================");
        logger.debug("使用了自定义json转换配置...");
        System.out.println("====================");
        System.out.println("====================");
        System.out.println("====================");
        System.out.println("====================");
        System.out.println("====================");
        System.out.println("====================");

        FastJsonHttpMessageConverter messageConverter=new FastJsonHttpMessageConverter();


        FastJsonConfig config=messageConverter.getFastJsonConfig();
        config.setDateFormat("yyyy-MM-dd");
        config.setSerializerFeatures(SerializerFeature.PrettyFormat);
        config.setSerializerFeatures(SerializerFeature.WriteDateUseDateFormat);



        messageConverter.setFastJsonConfig(config);

//        messageConverter.setDateFormat(config.getDateFormat());


//        messageConverter.getSupportedMediaTypes().add(MediaType.APPLICATION_JSON_UTF8);

        converters.add(messageConverter);

    }




//    @Override
//    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
//        System.out.println("====================================");
//        System.out.println("====================================");
//        System.out.println("====================================");
//        System.out.println("====================================");
//        System.out.println("====================================");
//        System.out.println("====================================");
//        System.out.println("====================================");
//        System.out.println("====================================");
//        System.out.println("====================================");
//        Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder()
//                .indentOutput(true)
//                .dateFormat(new SimpleDateFormat("yyyy-MM-dd"));
////                .modulesToInstall(new ParameterNamesModule());
//        converters.add(new MappingJackson2HttpMessageConverter(builder.build()));
////        converters.add(new MappingJackson2XmlHttpMessageConverter(builder.createXmlMapper(true).build()));
//    }
}
